#ifndef JUGADOR_H
#define JUGADOR_H

#include "Thread.h"
#include "Socket.h"
#include "Mensaje.h"
#include "EventoPartido.h"

#define CX_ACTIVA 1
#define CX_FINALIZADA 0

class Servidor;
class Usuario;
class Conexion : public Thread {
  public:
    Conexion(Socket *socket, Servidor *servidor);
    virtual ~Conexion();

    Usuario *getUsuario() {
        return this->usuario;
    }
    
    void despacharEventoPartido(Mensaje &mensaje, Usuario *usuario);
    void desconectar();
    int enviar(Mensaje &mensaje);
    bool autenticada();
    bool estaConectada();
    void cerrarSesion();
    bool finalizada();
    void finalizar();

    void *run();

  private:
    Servidor *servidor;
    Socket *socket;
    Usuario *usuario;
    bool conectado;
    int estado;
};

#endif
